/*
** $ 身份：嘞表.h $
** 炉啊表（哈希）
** 请参见炉啊.h中的版权声明
*
* * 本人所用声母表: a啊 b哔 c西 d迪 e鹅 f弗 g哥 
* h喝 i艾 j鸡 k颗 l嘞 m摸 n恩
* o欧 p匹 q气 r日 s丝 t嚏 
* u由 v微 w屋 x斯 y医 z只
*
* 一些英文单词缩写,我的翻译大多来自;有道词典,谷歌翻译,百度.
* 一些术语实在不好翻译,所以就原封不动.
* 
*/

#ifndef 嘞表_喝
#define 嘞表_喝

#include "嘞对象.h"

#define 哥节点(嚏,艾)	(&(嚏)->节点[艾])
#define 哥值(恩)		(&(恩)->艾_值)
#define 哥下一个(恩)	((恩)->由.下一个)

#define 无效日期嚏摸缓存(嚏)	((嚏)->旗 = 0)

/* 当 "嚏" 使用 "哑巴节点" 作为其哈希部分时为 真 */
#define 是否哑巴(嚏)		((嚏)->最后自由 == NULL)

/* 哈希节点分配的大小 */
#define 分配大小节点(嚏)	(是否哑巴(嚏) ? 0 : 大小节点(嚏))

/* 返回节点,给定表条目的值 */
#define 节点来自值(微)	投(节点 *, (微))

炉啊艾_函 const 嚏值 *炉啊喝_取整型 (表 *嚏, 炉啊_整数 键);
炉啊艾_函 void 炉啊喝_设置整型 (炉啊_国 *嘞, 表 *嚏, 炉啊_整数 键,
                                                    嚏值 *值);
炉啊艾_函 const 嚏值 *炉啊喝_取短串 (表 *嚏, 嚏串 *键);
炉啊艾_函 const 嚏值 *炉啊喝_取串 (表 *嚏, 嚏串 *键);
炉啊艾_函 const 嚏值 *炉啊喝_取 (表 *嚏, const 嚏值 *键);
炉啊艾_函 嚏值 *炉啊喝_新键 (炉啊_国 *嘞, 表 *嚏, const 嚏值 *键);
炉啊艾_函 嚏值 *炉啊喝_设置 (炉啊_国 *嘞, 表 *嚏, const 嚏值 *键);
炉啊艾_函 表 *炉啊喝_新 (炉啊_国 *嘞);
炉啊艾_函 void 炉啊喝_返回大小 (炉啊_国 *嘞, 表 *嚏, unsigned int 恩啊大小,
                                                    unsigned int 恩喝大小);

炉啊艾_函 void 炉啊喝_返回大小数组 (炉啊_国 *嘞, 表 *嚏, unsigned int 恩啊大小);
炉啊艾_函 void 炉啊喝_自由 (炉啊_国 *嘞, 表 *嚏);
炉啊艾_函 int 炉啊喝_下一个 (炉啊_国 *嘞, 表 *嚏, 丝嚏颗身份 键);
炉啊艾_函 炉啊_无符号 炉啊喝_取恩 (表 *嚏);
炉啊艾_函 unsigned int 炉啊喝_真实啊大小 (const 表 *嚏);

#if defined(炉啊_调试)
炉啊艾_函 节点 *炉啊喝_主位置 (const 表 *嚏, const 嚏值 *键);
炉啊艾_函 int 炉啊喝_是否哑巴 (const 表 *嚏);
#endif


#endif